fontchooserwidget: Simplify function
authorBenjamin Otte <otte@redhat.com>
Fri, 16 Sep 2011 08:14:15 +0000 (10:14 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 19 Sep 2011 20:11:05 +0000 (22:11 +0200)
- Don't do unnecessary casts
- Fix weird variable declaration indenting
- Fix loop indentation
- Use a for loop for iterating over a list, instead of a while loop
- Casefold font name only once, instead of every iteration
- Remove needless true_var = true_var && TRUE assignment

gtk/gtkfontchooserwidget.c

index af4bda5dfc5743c4eb4bcd32358153caa0fc2cfa..c62582b9c156b4a639e325f993987f7b681d63ce 100644 (file)
@@ -835,16 +835,15 @@ visible_func (GtkTreeModel *model,
               GtkTreeIter  *iter,
               gpointer      user_data)
 {
+  GtkFontChooserWidgetPrivate *priv = user_data;
   gboolean result = TRUE;
-  GtkFontChooserWidgetPrivate *priv = (GtkFontChooserWidgetPrivate*)user_data;
-
-  const gchar *search_text = (const gchar*)gtk_entry_get_text (GTK_ENTRY (priv->search_entry));
-  gchar       *font_name;
-  gchar       *term;
-  gchar      **split_terms;
-  gint         n_terms = 0;
+  const gchar *search_text;
+  gchar **split_terms;
+  gchar *font_name, *font_name_casefold, *term_casefold;
+  guint i;
 
   /* If there's no filter string we show the item */
+  search_text = gtk_entry_get_text (GTK_ENTRY (priv->search_entry));
   if (strlen (search_text) == 0)
     return TRUE;
 
@@ -856,25 +855,19 @@ visible_func (GtkTreeModel *model,
     return FALSE;
 
   split_terms = g_strsplit (search_text, " ", 0);
-  term = split_terms[0];
-
-  while (term && result)
-  {
-    gchar* font_name_casefold = g_utf8_casefold (font_name, -1);
-    gchar* term_casefold = g_utf8_casefold (term, -1);
+  font_name_casefold = g_utf8_casefold (font_name, -1);
 
-    if (g_strrstr (font_name_casefold, term_casefold))
-      result = result && TRUE;
-    else
-      result = FALSE;
+  for (i = 0; split_terms[i] && result; i++)
+    {
+      gchar* term_casefold = g_utf8_casefold (split_terms[i], -1);
 
-    n_terms++;
-    term = split_terms[n_terms];
+      if (!strstr (font_name_casefold, term_casefold))
+        result = FALSE;
 
-    g_free (term_casefold);
-    g_free (font_name_casefold);
-  }
+      g_free (term_casefold);
+    }
 
+  g_free (font_name_casefold);
   g_free (font_name);
   g_strfreev (split_terms);